博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完成登录功能,用session记住用户名
阅读量:4611 次
发布时间:2019-06-09

本文共 3839 字,大约阅读时间需要 12 分钟。

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
    3. οnclick="return fnLogin()"
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configapp = Flask(__name__)app.config.from_object(config)db=SQLAlchemy(app)class User(db.Model):    __table__name = 'user'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    username = db.Column(db.String(20),nullable=False)    password = db.Column(db.String(20),nullable=False)    nickname = db.Column(db.String(50))db.create_all()@app.route('/')def index():    return render_template('index.html')@app.route('/regist/',methods=['GET','POST'])def regist():    if request.method=='GET':        return render_template('regist.html')    else:        username=request.form.get('username')        password=request.form.get('password')        nickname=request.form.get('nickname')        user=User.query.filter(User.username==username).first()        if user:            return u'username existed'        else:            user=User (username=username,password=password,nickname=nickname)            db.session.add(user)            db.session.commit()            return redirect(url_for('login'))@app.route('/login/',methods=['GET','POST'])def login():    if request.method=='GET':        return render_template('login.html')    else:        username=request.form.get('username')        password=request.form.get('password')        user = User.query.filter(User.username == username).first()        if user:            if user.password==password:                session['user']=username                return redirect(url_for('index'))            else:                return u'password error'        else:            return u'username is not existed'if __name__ == '__main__':    app.run(debug=True)
    import osSECRET_KEY = os.urandom(24)SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/mis_db?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = False
    {% extends 'base.html' %}{% block title %}登录{% endblock %}{% block head %}    
    {% endblock %}{% block main %}
    Username:
    Password:
    {% endblock %}
    function myLogin(){            var uName=document.getElementById("name");            var uError=document.getElementById("error_box");            var upass = document.getElementById("password");            var isError=true;            uError.innerHTML = "
    " //uname if(uName.value.length>12 || uName.value.length<6){ uError.innerHTML="Username 6-12 bits"; isError=false; return isError; }else if((uName.value.charCodeAt(0)>=48)&& uName.value.charCodeAt(0)<=57){ uError.innerHTML="The first letter cannot be numeric"; isError=false; return isError; }else for(var i=0; i
    57)&&(uName.value.charCodeAt(i)<97 || uName.value.charCodeAt(i)>122 )){ uError.innerHTML = "only letter or number."; isNotError=false; return isError; } } if(upass.value.length>12 || upass.value.length<6){ uError.innerHTML="password 6-12 bits"; isError=false; return isError; } return isError; }

     

转载于:https://www.cnblogs.com/marsk/p/7879736.html

你可能感兴趣的文章
Chapter 4 Syntax Analysis
查看>>
nginx的配置:目的是使用nginx反向代理后,应用程序获取用户真实ip
查看>>
3、变量+运算符+Scanner
查看>>
10、数组、二维数组
查看>>
eclipse查看源码的配置
查看>>
mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同
查看>>
针对发送网络附件的java方法(使用Apache的jar包调用)
查看>>
‘--’之后的所有字符串,正则怎么写
查看>>
sql把一个字段中的特定字符替换成其他字符
查看>>
SQLServer触发器的使用
查看>>
通过AI识图判断图片是否为小票
查看>>
微信开发者工具常用快捷键
查看>>
Linux——静态库和动态库的生成
查看>>
Ulfius交叉编译——搭建http服务器端
查看>>
Linux——进度条实现
查看>>
Linux——定时器与计时器
查看>>
Linux——makefile编写
查看>>
vi/vim使用
查看>>
C/C++——指针
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>